#include "Reina.h"

Reina::Reina(tColor unColor, Posicion posicion):
							 Pieza(unColor, posicion) {
}

void Reina::imprimir(std::ostream& stream) {
	if (getColor() == BLANCO)
		stream << REINA_BLANCA;
	else
		stream << REINA_NEGRA;
}

/* Retorna una lista con los posibles movimientos para una Reina.*/

Lista* Reina::movimientosPosibles(const Tablero& tablero) const {
	Lista *movimientos;
	Lista *movimientosComoAlfil;
	Lista *movimientosComoTorre;
	movimientosComoAlfil = MovimientoEnDiagonal::movimientosPosibles(
														    tablero, getPosicion());
	movimientosComoTorre = MovimientoHorizontalVertical::movimientosPosibles(
															tablero, getPosicion());
	movimientos = (*movimientosComoTorre + *movimientosComoAlfil);
	delete movimientosComoAlfil;
	delete movimientosComoTorre;
	return (movimientos);
}

